#include<iomanip>
#include <iostream>
#include<list>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<stack>
#include<set>
#include<deque>
#include<math.h>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<string.h>
#include<queue>
#define ll long long int
//ll p=999998727899999;
ll prime=998244353;
ll INF=1000000000000000000;
using namespace std;
ll nC2(ll a)
{
return(a*(a-1)/(ll)2);
}
ll value(map<int,ll> m)
{
ll t=0,z=0;
for(auto p:m){
//cout<<p.first<<"-->"<<p.second<<"&&&\n";
z+=p.second;t-=nC2(p.second);
// cout<<z<<"^^^\n";
}
t+=nC2(z);
//cout<<z<<" "<<t<<"!!!!!\n";
return(t);
}
ll count(vector<int> x,vector<int> y,int n,int m,vector<pair<int,int>> points,int k)
{
sort(points.begin(),points.end());
int i=0,j=0,cur=0;ll ans=0;
while(cur<n-1)
{
int lb=x[cur],rb=x[cur+1];
map<int,ll> m;
while(j<k)
{
int cury=points[j].first;
if(cury>rb)break;
if(cury>lb&&cury<rb)
{
m[points[j].second]++;
}
j++;
}
ans+=value(m);
cur++;
i=j;
}
//cout<<ans<<"***\n";
return(ans);
}
int main()
{
int t;t=1;cin>>t;
while(t--)
{
int n,m,k;cin>>n>>m>>k;
vector<int> x(n),y(m);int j;
for(j=0;j<n;j++)cin>>x[j];for(j=0;j<m;j++)cin>>y[j];
vector<pair<int,int>> real,reflect;
for(j=0;j<k;j++)
{
int a,b;cin>>a>>b;
real.push_back({a,b});reflect.push_back({b,a});
}
cout<<count(x,y,n,m,real,k)+count(y,x,m,n,reflect,k)<<"\n";
}
return(0);
}
1598B - Groups | 1602B - Divine Array |
1594B - Special Numbers | 1614A - Divan and a Store |
2085. Count Common Words With One Occurrence | 2089. Find Target Indices After Sorting Array |
2090. K Radius Subarray Averages | 2091. Removing Minimum and Maximum From Array |
6. Zigzag Conversion | 1612B - Special Permutation |
1481. Least Number of Unique Integers after K Removals | 1035. Uncrossed Lines |
328. Odd Even Linked List | 1219. Path with Maximum Gold |
1268. Search Suggestions System | 841. Keys and Rooms |
152. Maximum Product Subarray | 337. House Robber III |
869. Reordered Power of 2 | 1593C - Save More Mice |
1217. Minimum Cost to Move Chips to The Same Position | 347. Top K Frequent Elements |
1503. Last Moment Before All Ants Fall Out of a Plank | 430. Flatten a Multilevel Doubly Linked List |
1290. Convert Binary Number in a Linked List to Integer | 1525. Number of Good Ways to Split a String |
72. Edit Distance | 563. Binary Tree Tilt |
1306. Jump Game III | 236. Lowest Common Ancestor of a Binary Tree |